package com.javatip.project.deep_learning.predict.service;

import com.javatip.project.deep_learning.predict.domain.Predict;

import java.util.Date;
import java.util.List;

/**
 * 识别 服务层
 * 
 * @author 袁伟
 * @date 2024-07-24
 */
public interface IPredictService 
{
	/**
     * 查询识别信息
     * 
     * @param id 识别ID
     * @return 识别信息
     */
	public Predict selectPredictById(Integer id);
	
	/**
     * 查询识别列表
     * 
     * @param predict 识别信息
     * @return 识别集合
     */
	public List<Predict> selectPredictList(Predict predict);
	
	/**
     * 新增识别
     * 
     * @param predict 识别信息
     * @return 结果
     */
	public int insertPredict(Predict predict);
	
	/**
     * 修改识别
     * 
     * @param predict 识别信息
     * @return 结果
     */
	public int updatePredict(Predict predict);
		
	/**
     * 删除识别信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deletePredictByIds(String ids);

    public int predict(Integer id);

	public String getInferenceStatus(Integer id);

	public int deletePredictById(Integer id);

	public boolean stopSingePredict(Integer id);

	public int doPredict();

	public int stopPredict();

	public int updateStatusToWait(int id);

	public int updateStatusToNotPredict(int id);

	public void setTimeToQueue(int id);

	void setTimeToQueueNull(int id);

    public boolean isPredictNameExists(String name, int userId);

	public List<Predict> selectWaitAndPredictingList(Object o);

	public int calculateQueuePosition(Date timeToQueue, Integer id);

	public boolean isPredictMissionUnique(int trainMissionId, int datasetId, int userId);

    public List<Predict> selectPredictListWithSameUserId(int currentUserId, Predict predict);
}
